package com.gxar.quick.ar.server.base.model.pay.vo.response;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.gxar.quick.ar.server.base.model.pay.info.WechatPayAmountInfo;
import com.gxar.quick.ar.server.base.model.pay.info.WechatPayPayerInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

/**
 * @author nice
 * @version 1.0
 * @created 2023/11/13.
 */
@Data
@ApiModel("微信支付信息返回值")
@ToString
public class WechatTransactionResponse {

    @ApiModelProperty("订单id")
    @JsonProperty("out_trade_no")
    @JSONField(name = "out_trade_no")
    private String outTradeNo;

    @ApiModelProperty("微信支付系统生成的订单号")
    @JsonProperty("transaction_id")
    @JSONField(name = "transaction_id")
    private String transactionId;

    @ApiModelProperty(value = "交易类型，枚举定义： WechatTradeTypeEnum")
    @JsonProperty("trade_type")
    @JSONField(name = "trade_type")
    private String tradeType;

    @ApiModelProperty("交易状态，枚举定义：WechatTradeStateEnum")
    @JSONField(name = "trade_state")
    @JsonProperty("trade_state")
    private String tradeState;

    @ApiModelProperty("交易状态描述")
    @JsonProperty("trade_state_desc")
    @JSONField(name = "trade_state_desc")
    private String tradeStateDesc;

    @ApiModelProperty("银行类型，采用字符串类型的银行标识")
    @JsonProperty("bank_type")
    @JSONField(name = "bank_type")
    private String bankType;

    @ApiModelProperty("附加数据")
    private String attach;

    @ApiModelProperty("支付完成时间，格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE")
    @JsonProperty("success_time")
    @JSONField(name = "success_time")
    private String successTime;

    @ApiModelProperty("支付者信息")
    private WechatPayPayerInfo payer;

    @ApiModelProperty("订单金额信息")
    private WechatPayAmountInfo amount;
}
